const express = require("express");
const redisClient = require("../service/redis/index");
const router = express.Router();
// 引入multer
const multer = require("multer")


// 测试 redis
router.get("/addRedis", (req, res) => {
    redisClient.setex("xiaoming", 100, "3");
    return res.send("1");
})

router.get("/getRedis", (req, res) => {
    redisClient.get("xiaoming", (err, val) => {
        if (err) {
            console.error(err)
            return;
        }
        console.log(val);
        return res.send(val);
    })
})


// 注册
router.post("/register", require("../service/register/index").main);
// 登录
router.post("/login", require("../service/login/index").main);
// 发送邮箱验证码
router.post("/email/send", require("../service/email/sendEmail/index").main)
// 获取用户信息
router.post("/user/get", require("../service/user/getUserById/index").main)


// 商品相关
// 获取商品
router.post("/product/get", require("../service/product/getProduct/index").main)
// 根据分类 id 获取商品
router.post("/product/getByCategoryId", require("../service/product/getProductByCategoryId/index").main)
// 添加商品
router.post("/product/add", require("../service/product/addProduct/index").main)
// 根据商品 id 获取商品详情
router.post("/product/getDetail", require("../service/product/getProductDetail/index").main)


// 购物车相关
// 购物车添加信息
router.post("/cart/update", require("../service/cart/updateCart").main);
// 获取购物车
router.post("/cart/get", require("../service/cart/getCart").main);
// 清除购物车
router.post("/cart/del", require("../service/cart/deleteCart").main);

// 商品分类相关
// 添加或修改商品分类
router.post("/category/addOrUpdate", require("../service/productCategory/addOrUpdateProductCategory/index").main)
// 删除商品分类
router.post("/category/del", require("../service/productCategory/deleteProductCategory/index").main)
// 获取商品分类
router.post("/category/get", require("../service/productCategory/getProductCategory/index").main)


// 订单相关
// 添加订单信息
router.post("/order/add", require("../service/order/addOrder/index").main)
// 获取用户全部订单
router.post("/order/get", require("../service/order/getOrder/index").main)
// 获取订单详情
router.post("/order/getDetail", require("../service/order/getOrderDetail/index").main)
// 删除订单
router.post("/order/del", require("../service/order/deleteOrder/index").main)


// 地址相关
// 添加地址
router.post("/address/add", require("../service/address/addAddress/index").main)
// 获取用户地址
router.post("/address/get", require("../service/address/getAddres/index").main)
// 获取用户默认地址
router.post("/address/getDefault", require("../service/address/getDefaultAddres/index").main)
// 删除地址
router.post("/address/del", require("../service/address/deleteAddress/index").main)


// 上传图片的方法
const storage = multer.diskStorage({
    // 存储位置
    destination: function (req, file, callback) {
        // 参数解释 param1:错误信息  param2:上传图片的服务端保存路径，注意这里的路径写法

        callback(null, "./public/images")
    },
    // 确定文件名,在这儿采用了时间戳和图片文件原名为上传的图片文件命名，可以保证名字不重复
    filename: function (req, file, cb) {

        cb(null, `${Date.now()}-${file.originalname}`)
    }
})
// 得到multer对象
const upload = multer({ storage: storage })
//路由接口
router.post("/imgUpload", upload.array("img", 1), (req, res) => {
    // 返回图片的地址
    console.log(req.files)
    let file = req.files;
    // console.log(req.params);
    //====此时，图片已经保存至我们的服务端了====
    let fileInfo = {}
    // 获取文件基本信息，封装好发送给前端
    fileInfo.type = file[0].mimetype;
    fileInfo.name = file[0].originalname;
    fileInfo.size = file[0].size;
    fileInfo.path = file[0].filename;
    res.send({
        code: 200,
        message: "图片上传成功",
        data: fileInfo
    })
})


module.exports = router;
